Android 自定义控件属性赋值 | 您所在的位置:网站首页 › 安卓 所有控件通用自定义属性怎么设置 › Android 自定义控件属性赋值 |
1. 自定义属性
attrs.xml文件,在AttrAssignTextView中定义了5个属性,并且定义了一个单独的attrAssignStyle,用于后面的定义。 2. 属性赋值布局文件中直接定义 自定义style,在布局文件中指定View的style style.xml文件 attr1 value from Style attr2 value from Style自定义主题theme attr1 value from Theme attr2 value from Theme attr3 value from Theme attr4 value from Theme 3. 自定义控件自定义控件AttrAssignTextView public class AttrAssignTextView extends TextView { public AttrAssignTextView(Context context) { this(context, null); } public AttrAssignTextView(Context context, @Nullable AttributeSet attrs) { this(context, attrs, 0); } public AttrAssignTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.AttrAssignTextView); String attr1 = a.getString(R.styleable.AttrAssignTextView_attr1); String attr2 = a.getString(R.styleable.AttrAssignTextView_attr2); String attr3 = a.getString(R.styleable.AttrAssignTextView_attr3); String attr4 = a.getString(R.styleable.AttrAssignTextView_attr4); String attr5 = a.getString(R.styleable.AttrAssignTextView_attr5); a.recycle(); setText((attr1 != null ? attr1 + "\n" : "") + (attr2 != null ? attr2 + "\n" : "") + (attr3 != null ? attr3 + "\n" : "") + (attr4 != null ? attr4 + "\n" : "") + (attr5 != null ? attr5 + "\n" : "")); } }效果如下,布局文件定义 > style定义 > theme定义 使用obtainStyledAttributes(AttributeSet set, int[] attrs, int defStyleAttr, int defStyleRes)方法,通过defStyleAttr和defStyleRes来获取默认值。 defStyleAttr设置默认值,defStyleAttr是当前Theme中的一个attribute,是指向style的一个引用。重新定义主题attrAssignTheme,添加attrAssignStyle属性,attrAssignStyle必须在attr中定义过。 attr1 value from Style Attr attr2 value from Style Attr attr3 value from Style Attr attr1 value from Theme attr2 value from Theme attr3 value from Theme attr4 value from Theme @style/attrAssignDefStyleAttr attr1 value from Default Style attr2 value from Default Style attr3 value from Default Style attr4 value from Default Style attr5 value from Default Style 只指定defStyleAttr值TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.AttrAssignTextView, R.attr.attrAssignStyle, 0); 效果如下,布局文件定义 > style定义 > defStyleAttr定义 > theme定义![]() ![]() ![]() 参考资料:http://blog.csdn.net/zq2114522/article/details/53312530 相关文章 Android 自定义控件属性 Android 自定义控件属性format详解 Android 自定义控件属性赋值 |
CopyRight 2018-2019 实验室设备网 版权所有 |